package com.broada.apm.template;

import java.util.List;

/**
 * 资源模板
 * @author jianfei.xu
 * @date   2016年3月15日
 *
 * @param <T>
 */
public interface ResourceTemplate<T> {
	
	/**
	 * 获取所有
	 * @param entityClass :实体类class
	 * @return			  :返回所有
	 */
	public List<T> getAll(Class<T> entityClass);
	
	/**
	 * 获取符合条件的数值
	 * @param queryParam	:查询条件值
	 * @param entityClass   :实体类class
	 * @return	 			:返回符合条件的值
	 */
	public List<T> getByParams(T queryParam, Class<T> entityClass);
	
	/**
	 * 根据条件删除
	 * @param delParam		:删除条件	
	 * @param entityClass   :实体类class
	 * @return				:返回成功删除总数
	 */
	public int deleteByParams(T delParam, Class<T> entityClass);
	
	/**
	 * 根据条件更新
	 * @param updateParam	:更新参数
	 * @param entityClass   :实体类class
	 * @return				:返回成功更新总数
	 */
	public int updateByParams(T updateParam, Class<T> entityClass);
	
	/**
	 * 添加一条记录
	 * @param entity		:添加值
	 * @param entityClass   :实体类class
	 * @return				:返回添加成功总数
	 */
	public int add(T entity, Class<T> entityClass);
	
}
